package com.tianqicode.spring.context;

import com.tianqicode.spring.beans.BeansException;

/**
 * 除了ApplicationContext中的方法外，还提供配置应用程序上下文的工具。
 * todo 配置和生命周期方法被封装在这里，这些方法不应该对应用客户端可见
 */
public interface ConfigurableApplicationContext extends ApplicationContext{

    /**
     * 刷新容器
     *
     * @throws BeansException
     */
    void refresh() throws BeansException;

    /**
     * ioc1-4新增: 注册一个新的虚拟机关闭钩子
     */
    void registerShutdownHook();

    void close();
}
